.login-container {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  width: 100%;
  padding: 0 4vw;
  box-sizing: border-box;
  background-color: #f8f9fa;

  .login-wrapper {
    width: 100%;
    max-width: 800px;
    padding: 8vw 6vw;
    background-color: white;
    border-radius: 4vw;
    box-shadow: 0 4px 20px rgba(0,0,0,0.05);
    box-sizing: border-box;

    .header {
      text-align: center;
      margin-bottom: 12vw;
    }

    .input-box {
      position: relative;
      height: 12vw;
      margin-bottom: 6vw;
      border: 1px solid #e5e6eb;
      border-radius: 3vw;
      padding: 0 4vw;
      display: flex;
      align-items: center;
      box-sizing: border-box;

      .input-icon {
        width: 5vw;
        height: 5vw;
        margin-right: 3vw;
      }

      input {
        flex: 1;
        height: 100%;
        font-size: 4vw;
        color: #333;
        padding: 0;
        border: none;
        outline: none;

        &::placeholder {
          color: #c9cdd4;
        }
      }
    }

    .code-btn {
      width: 100%;
      height: 12vw;
      background: linear-gradient(90deg, #4D88F3, #3A71E9);
      color: white;
      border: none;
      border-radius: 6vw;
      font-size: 4.5vw;
      font-weight: 500;
      margin-top: 2vw;
      box-shadow: 0 4px 12px rgba(58, 113, 233, 0.3);
      transition: all 0.3s;

      &:active {
        opacity: 0.8;
        transform: translateY(1px);
      }
    }

    .agreement {
      display: flex;
      justify-content: center;
      align-items: center;
      font-size: 3vw;
      color: #999;
      margin-top: 5vw;
      margin-bottom: 12vw;

      .link {
        color: #4D88F3;
        text-decoration: underline;
        margin: 0 1vw;
      }
    }

    .third-party {
      .divider {
        display: flex;
        align-items: center;
        margin-bottom: 8vw;

        .line {
          flex: 1;
          height: 1px;
          background-color: #e5e6eb;
        }

        text {
          font-size: 3.5vw;
          color: #999;
          padding: 0 4vw;
        }
      }

      .social-buttons {
        display: flex;
        justify-content: center;
        gap: 10vw;

        .social-btn {
          width: 14vw;
          height: 14vw;
          border-radius: 50%;
          background-color: #f5f7fa;
          display: flex;
          justify-content: center;
          align-items: center;
          border: none;
          transition: all 0.3s;

          image {
            width: 7vw;
            height: 7vw;
          }

          &:active {
            background-color: #e5e6eb;
          }
        }
      }
    }

    // 平板适配
    @media (min-width: 768px) {
      padding: 6vw 8vw;
      max-width: 600px;

      .header h1 { font-size: 4vw; }
      .header h2 { font-size: 2.5vw; }

      .input-box, .code-btn {
        height: 8vw;
        font-size: 2.8vw;
        border-radius: 3vw; // 保持与移动端一致的圆角比例
      }

      .input-icon { width: 3.5vw; height: 3.5vw; }
      .agreement { font-size: 2vw; }
      .divider text { font-size: 2.2vw; }

      .social-btn {
        width: 10vw;
        height: 10vw;
        image { width: 5vw; height: 5vw; }
      }
    }

    // 桌面适配
    @media (min-width: 1024px) {
      padding: 4vw 6vw;
      max-width: 450px;

      .header h1 { font-size: 2.5vw; }
      .header h2 { font-size: 1.5vw; }

      .input-box, .code-btn {
        height: 5vw;
        font-size: 1.5vw;
        border-radius: 1.5vw;
      }

      .input-icon { width: 2vw; height: 2vw; }
      .agreement { font-size: 1.2vw; }
      .divider text { font-size: 1.3vw; }

      .social-btn {
        width: 6vw;
        height: 6vw;
        image { width: 3vw; height: 3vw; }
      }
    }
  }
}